/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package operaciones;



import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import javax.swing.JOptionPane;

/**
 *
 * @author tms
 */
public class procedimientoempresa {
   public Connection conexion;
    public boolean conectar(){
    
    try{
        Class.forName("oracle.jdbc.OracleDriver"); 
        //Cadena de conexión indicando el puerto de oracle 1521 y la versión XE
        String BaseDeDatos = "jdbc:oracle:thin:@localhost:1521:XE";
        
        //Indicar el no,bre del usuario y contraseña en esta caso
        conexion= DriverManager.getConnection(BaseDeDatos,"p","p");
        if(conexion!=null)
        {
            System.out.println("Conexion exitosa a esquema BASE");
            return true;
        }
        else{
            System.out.println("Conexion fallida");
        }
      }//Fin del try
        catch(Exception e)
        {
        System.out.println("error: " + e);    
        }//Fin del catch
  return false;
    } //Fin del metodo conectar

    public ResultSet consultar(){
       /*
        ResultSet:Almacena todas las finalas retornadas por el select. Proporciona
        acceso a los datos de las filas mediante metodos get.
        Statement: Permite el envio y ejecución de sentencias SQL.
        executeQuery:Método del statement utilizado para ejecutar instrucciones select.
        */
        
        ResultSet rs=null; 
        
        try{      
        String sql="Select * from empresa";
        if (conectar()){
        Statement stt=conexion.createStatement();
        rs=stt.executeQuery(sql);
        }
        return rs;
  }
  catch(Exception e){
    System.out.print("Error al consultar: " + e);
  }
     return rs;
    } //Fin metodo consultar
  
 public String ejecutarinsertar(String r_rfc, String n_nombre, String d_direccion, String e_estado,String m_municipio, String g_giro,
         String d_direccion_web,String n_nombre_contacto, int t_telefono_contacto, String e_email, String p_pasword,int i_idusuario){


    try{
        if(conectar()){
    CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN insertar_empresa(?,?,?,?,?,?,?,?,?,?,?,?); END;");
    cs.setString(1, r_rfc);
    cs.setString(2, n_nombre);
    cs.setString(3, d_direccion);
    cs.setString(4, e_estado);
    cs.setString(5,m_municipio);
    cs.setString(6, g_giro);
    cs.setString(7, d_direccion_web);
    cs.setString(8, n_nombre_contacto);
    cs.setInt(9, t_telefono_contacto);
    cs.setString(10, e_email);
    cs.setString(11,p_pasword);
    cs.setInt(12, i_idusuario);
    cs.executeUpdate();
    conexion.close();
    }
    return "";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
 

 public String inser_soli(int i_idvacante,String e_estatus,String c_curp){
    try{
        if(conectar()){
            
        CallableStatement cs=null;
       
    cs=conexion.prepareCall("BEGIN insert_soli(?,?,?); END;");
    cs.setInt(1, i_idvacante);
    cs.setString(2, e_estatus);
    cs.setString(3, c_curp);
   
    
   //Ejecutamos el procedimeinto
    cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    JOptionPane.showMessageDialog(null,"Tu solicitud ha sido enviada con exito");

    }
    return "";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
 
 public String modificar_empresa(String r_rfc, String n_nombre, String d_direccion, String e_estado, String m_municipio, String g_giro,
         String d_direccion_web,String n_nombre_contacto, int t_telefono_contacto, String e_email, String p_pasword,int i_idusuario){
     
     try{
        if(conectar()){
        CallableStatement cs=null;
        cs=conexion.prepareCall("BEGIN modificar_empresa(?,?,?,?,?,?,?,?,?,?,?,?); END;");
   
    cs.setString(1, r_rfc);
    cs.setString(2, n_nombre);
    cs.setString(3, d_direccion);
    cs.setString(4, e_estado);
    cs.setString(5,m_municipio);
    cs.setString(6, g_giro);
    cs.setString(7, d_direccion_web);
    cs.setString(8, n_nombre_contacto);
    cs.setInt(9, t_telefono_contacto);
    cs.setString(10, e_email);
    cs.setString(11,p_pasword);
    cs.setInt(12, i_idusuario);
    
   //Ejecutamos el procedimeinto
    cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    return "";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
 
 
 public String insertar_alumno(int i_idusuario,String c_curp,String p_pasword,String n_nombre,String a_apellidos,String s_sexo,
         String e_estado_civil,String d_direccion,String e_estado,String m_municipio,int t_telefono,String e_escolaridad,String c_carrera,
         String e_email,String o_ocupacion_actual,String i_idiomas,String n_nivel_idioma,String l_licencia_manejo,String 
         c_cartillla_militar,String e_experiencia,String h_habilidades,String r_referencias,int i_idarea){


    try{
        if(conectar()){
     /* CallableStatement: Al igual del statement permite la ejecución de
            instrucciones SQL pero con el soporte de parametros de entrada y salida 
            como los manejados en los procedimeintos y funciones.
     */
            
        CallableStatement cs=null;
       // CallableStatement cs=null;
        //Indicamos el nombre del procedimiento a llamar, por cada parametro 
        // que se tenga en el procedimiento se coloca un signo de interrogación
    cs=conexion.prepareCall("BEGIN insertar_alumno(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); END;");
    /*Se indica el envio de los parametros del procedimiento
    En este caso todos son entrada y se debe de indicar el tipo de dato de cada uno
    por ejemplo el primer parametro es de tipo varchar y hace referencia al id del empleado
    cs.setTipoDeDatoDelParametro(numero_de_parametro,valor_a_guardar)
    */
    cs.setInt(1, i_idusuario);
    cs.setString(2, c_curp);
    cs.setString(3, p_pasword);
    cs.setString(4, n_nombre);
    cs.setString(5,a_apellidos);
    cs.setString(6, s_sexo);
    cs.setString(7, e_estado_civil);
    cs.setString(8, d_direccion);
    cs.setString(9, e_estado);
    cs.setString(10, m_municipio);
    cs.setInt(11,t_telefono);
    cs.setString(12,e_escolaridad);
    cs.setString(13, c_carrera);
    cs.setString(14, e_email);
    cs.setString(15, o_ocupacion_actual);
    cs.setString(16, i_idiomas);
    cs.setString(17, n_nivel_idioma);
    cs.setString(18, l_licencia_manejo);
    cs.setString(19, c_cartillla_militar);
    cs.setString(20, e_experiencia);
    cs.setString(21, h_habilidades);
    cs.setString(22, r_referencias);
    cs.setInt(23, i_idarea);
    
   //Ejecutamos el procedimeinto
    cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    return "";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
 
 public String modificar_alumno(int i_idusuario,String c_curp,String p_pasword,String n_nombre,String a_apellidos,String s_sexo,
         String e_estado_civil,String d_direccion,String e_estado,String m_municipio,int t_telefono,String e_escolaridad,String c_carrera,
         String e_email,String o_ocupacion_actual,String i_idiomas,String n_nivel_idioma,String l_licencia_manejo,String 
         c_cartillla_militar,String e_experiencia,String h_habilidades,String r_referencias,int i_idarea){


    try{
        if(conectar()){
     /* CallableStatement: Al igual del statement permite la ejecución de
            instrucciones SQL pero con el soporte de parametros de entrada y salida 
            como los manejados en los procedimeintos y funciones.
     */
            
        CallableStatement cs=null;
       // CallableStatement cs=null;
        //Indicamos el nombre del procedimiento a llamar, por cada parametro 
        // que se tenga en el procedimiento se coloca un signo de interrogación
    cs=conexion.prepareCall("BEGIN modificar_alumno(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); END;");
    /*Se indica el envio de los parametros del procedimiento
    En este caso todos son entrada y se debe de indicar el tipo de dato de cada uno
    por ejemplo el primer parametro es de tipo varchar y hace referencia al id del empleado
    cs.setTipoDeDatoDelParametro(numero_de_parametro,valor_a_guardar)
    */
    cs.setInt(1, i_idusuario);
    cs.setString(2, c_curp);
    cs.setString(3, p_pasword);
    cs.setString(4, n_nombre);
    cs.setString(5,a_apellidos);
    cs.setString(6, s_sexo);
    cs.setString(7, e_estado_civil);
    cs.setString(8, d_direccion);
    cs.setString(9, e_estado);
    cs.setString(10, m_municipio);
    cs.setInt(11,t_telefono);
    cs.setString(12,e_escolaridad);
    cs.setString(13, c_carrera);
    cs.setString(14, e_email);
    cs.setString(15, o_ocupacion_actual);
    cs.setString(16, i_idiomas);
    cs.setString(17, n_nivel_idioma);
    cs.setString(18, l_licencia_manejo);
    cs.setString(19, c_cartillla_militar);
    cs.setString(20, e_experiencia);
    cs.setString(21, h_habilidades);
    cs.setString(22, r_referencias);
    cs.setInt(23, i_idarea);
    
   //Ejecutamos el procedimeinto
    cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    return "";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
 
 
 public String ejecutareliminacion(String rf){
    try{
        if(conectar()){
     /* CallableStatement: Al igual del statement permite la ejecución de
            instrucciones SQL pero con el soporte de parametros de entrada y salida 
            como los manejados en los procedimeintos y funciones.
     */
            
        CallableStatement cs=null;
       // CallableStatement cs=null;
        //Indicamos el nombre del procedimiento a llamar, por cada parametro 
        // que se tenga en el procedimiento se coloca un signo de interrogación
        
    cs=conexion.prepareCall("BEGIN eliminar(?); END;");
    /*Se indica el envio de los parametros del procedimiento
    En este caso todos son entrada y se debe de indicar el tipo de dato de cada uno
    por ejemplo el primer parametro es de tipo varchar y hace referencia al id del empleado
    cs.setTipoDeDatoDelParametro(numero_de_parametro,valor_a_guardar)
    */
    cs.setString(1, rf);
    
    
   //Ejecutamos el procedimeinto
   cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
        
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
 
 
  public ResultSet metodo_valida(String usua, String cont ){
       ResultSet rs=null;
       try{
           String sql="select * from usuarios where nombre=('"+usua+"') and password='"+cont+"'";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(sql);
               
           }
           return rs;
       }
       catch(Exception e){
           System.out.print("error al consultar"+e);
       }
       return rs;
   }
 
  
  
  
public String insert_vacante(String n_nombre, String r_ramo, int s_salario, String f_fun_a_realizar,int
        d_dias_de_trabajo, String h_horario,String h_habilidades,String d_descripcion_vacante,String r_requerimientos,
        String f_fecha_publicacion,int i_idarea,String r_rfc,String f_fecha_vigencia,String e_estatus){
    try{
        if(conectar()){  
        CallableStatement cs=null;
       cs=conexion.prepareCall("BEGIN insertar_vacante(?,?,?,?,?,?,?,?,?,?,?,?,?,?); END;");
    cs.setString(1,n_nombre);
    cs.setString(2,r_ramo);
    cs.setInt(3,s_salario);
    cs.setString(4,f_fun_a_realizar);
    cs.setInt(5,d_dias_de_trabajo);
    cs.setString(6,h_horario);
    cs.setString(7,h_habilidades);
    cs.setString(8,d_descripcion_vacante);
    cs.setString(9,r_requerimientos);
    cs.setString(10,f_fecha_publicacion);
    cs.setInt(11,i_idarea);
    cs.setString(12,r_rfc);
    cs.setString(13,f_fecha_vigencia);
     cs.setString(14,e_estatus);
    cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    return "Registro Guardado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
public String delete_vacante( String i_idvacante){
    try{
        if(conectar()){  
        CallableStatement cs=null;
       cs=conexion.prepareCall("BEGIN borrar_vacante(?); END;");
    cs.setString(1,i_idvacante);
    cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    return "Registro Guardado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }

public String update_vacante( int i_idvacante, String n_nombre, String r_ramo, int s_salario, String f_fun_a_realizar,int
        d_dias_de_trabajo, String h_horario,String h_habilidades,String d_descripcion_vacante,String r_requerimientos,
        String f_fecha_publicacion,int i_idarea,String r_rfc,String f_fecha_vigencia,String e_estatus){
    try{
        if(conectar()){  
        CallableStatement cs=null;
       cs=conexion.prepareCall("BEGIN modificar_vacante(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?); END;");
    cs.setInt(1,i_idvacante);
    cs.setString(2,n_nombre);
    cs.setString(3,r_ramo);
    cs.setInt(4,s_salario);
    cs.setString(5,f_fun_a_realizar);
    cs.setInt(6,d_dias_de_trabajo);
    cs.setString(7,h_horario);
    cs.setString(8,h_habilidades);
    cs.setString(9,d_descripcion_vacante);
    cs.setString(10,r_requerimientos);
    cs.setString(11,f_fecha_publicacion);
    cs.setInt(12,i_idarea);
    cs.setString(13,r_rfc);
    cs.setString(14,f_fecha_vigencia);
     cs.setString(15,e_estatus);
    cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    return "Registro Guardado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }

public ResultSet ofertas(String of){
      ResultSet rs=null;
       try{
           String ejecutarsql="select a.idvacante,"
                   + "a.nombre,"
                   + "a.ramo,"
                   + "a.salario,"
                   + "a.fun_a_realizar,"
                   + "a.descripcion_vacante,"
                   + "a.fecha_publicacion from vacante a inner join empresa b on a.rfc=b.rfc inner join areas c on a.idarea=c.idarea and a.idvacante like '"+of+"'";
           if(conectar()){
               Statement stt=conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
public ResultSet filtro(String valo){
      ResultSet rs=null;
       try{
           String ejecutarsql="select * from vacante where nombre like '"+valo+"'";
           if(conectar()){
               Statement stt=conexion.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }




public ResultSet vacantesdeempresa(String v){
      ResultSet rs=null;
       try{
           String ejecutarsql="select a.nombre,a.descripcion_vacante,a.requerimientos,a.fecha_publicacion,"
                   + "a.fecha_vigencia, b.nombre as empresa,b.direccion,"
                   + "b.telefono_contacto,b.email,a.idvacante from vacante a inner join empresa b on a.rfc=b.rfc and a.rfc like '"+v+"'";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
public ResultSet estatus_solicitud(String es){
      ResultSet rs=null;
       try{
           String ejecutarsql="select  num_solicitud,idvacante,curp,estatus from solicitud where curp like'"+es+"'"; 
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
public ResultSet mensage(String m){
      ResultSet rs=null;
       try{
           String ejecutarsql="select count(a.estatus) from solicitud a,vacante b where a.idvacante=b.idvacante and a.estatus='aceptada' and a.curp like '"+m+"'"; 
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
               }
           
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }

public ResultSet mensageempresa(String m){
      ResultSet rs=null;
       try{
           String ejecutarsql="select count(a.estatus) from solicitud a,vacante b where a.idvacante=b.idvacante  and b.rfc like '"+m+"'"; 
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
               }
           
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }



public ResultSet Datos_administrador(String admi){
      ResultSet rs=null;
       try{
           String ejecutarsql="select nombre,apellidos,email from administrador"; 
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
public ResultSet datos_especialidad(String admi){
      ResultSet rs=null;
       try{
           String ejecutarsql="select nombre from areas"; 
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
public String borrar_vacante(String id_vacante){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN eliminar_vacante(?); END;");
    cs.setString(1, id_vacante);
   cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
public String borrar_solicitud(String id){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN borrar_solicitud(?); END;");
    cs.setString(1, id);
   cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
public String update_solicitud(int n_num_solicitud,int i_idvacante){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN modificar_soli(?,?); END;");
    cs.setInt(1, n_num_solicitud);
    cs.setInt(2, i_idvacante);
   
   
   cs.executeUpdate();
   
    
//cerramos la conexión
    conexion.close();
                JOptionPane.showMessageDialog(null,"Solicitud Aceptada");

    }
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
public String rechazar_solicitud(int n_num_solicitud){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN rechazar_soli(?); END;");
    cs.setInt(1, n_num_solicitud);
   
   cs.executeUpdate();
   
    
//cerramos la conexión
    conexion.close();
    }
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
public String borrar_solicitud_todas (String c_curp){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN borrar_solicitud_todas(?); END;");
    cs.setString(1, c_curp);
   cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
 public ResultSet obtenerdatosempresa(String rf){
      ResultSet rs=null;
       try{
           String ejecutarsql="select nombre,"
                   + "direccion,"
                   + "estado,"
                   + "municipio,"
                   + "giro,"
                   + "direccion_web,"
                   + "nombre_contacto,"
                   + "telefono_contacto,"
                   + "email,"
                   + "pasword from empresa where rfc like '"+rf+"'";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
  public ResultSet obtenerdatos(String rfc){
      ResultSet rs=null;
       try{
           String ejecutarsql="select nombre,"
                   + "direccion,"
                   + "estado,"
                   + "municipio,"
                   + "giro,"
                   + "direccion_web,"
                   + "nombre_contacto,"
                   + "telefono_contacto,"
                   + "email,"
                   + "pasword from empresa where rfc like'"+rfc+"'";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
  
   public ResultSet vacanteid(String v){
      ResultSet rs=null;
       try{
           String ejecutarsql="select idvacante,nombre,ramo from vacante where idvacante like '"+v+"'";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
  
  
  
  
 public ResultSet obtenerdatosalumno(String a){
      ResultSet rs=null;
       try{
           String ejecutarsql="select nombre,"
                   + "apellidos,"
                   + "sexo,"
                   + "estado_civil,"
                   + "direccion,"
                   + "estado,"
                   + "municipio,"
                   + "telefono,"
                   + "escolaridad,"
                   + "carrera,"
                   + "email,"
                   + "ocupacion_actual,"
                   + "idiomas,"
                   + "nivel_idioma,"
                   + "licencia_manejo,"
                   + "cartilla_militar,"
                   + "experiencia,"
                   + "habilidades,"
                   + "referencias from alumno a where curp like'"+a+"'";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
public ResultSet Tablas(String A, String B, String C){
       ResultSet rs=null;
       try{
           String sql="select * from "+A+" where "+B+" like'"+C+"'";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(sql);
               
           }
           return rs;
       }
       catch(Exception e){
           System.out.print("error al consultar"+e);
       }
       return rs;
   } 
public String borrar_empresa(String nn_nombre){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN borrar_empresa(?); END;");
    cs.setString(1, nn_nombre);
   cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
        
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
public String insertar_especialidad(String nombre){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN insertar_especialidad(?); END;");
    cs.setString(1,nombre);
   cs.executeUpdate();
    
//cerramos l
   
    conexion.close();
    }
        
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
public String update_admi(String n_nombre, String a_apellidos, String e_email){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN modificar_admi(?,?,?); END;");
     //cs.setInt(1, i_idadministrador);
    cs.setString(1, n_nombre);
    cs.setString(2, a_apellidos);
    cs.setString(3, e_email);
   cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
        }
         return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }
public ResultSet todas_empresas(String empresas){
      ResultSet rs=null;
       try{
           String ejecutarsql="select nombre,"
                   + "direccion,"
                   + "estado,"
                   + "municipio,"
                   + "giro,"
                   + "direccion_web,"
                   + "nombre_contacto,"
                   + "telefono_contacto,"
                   + "email from empresa";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
public ResultSet postulantes(String postulantes){
      ResultSet rs=null;
       try{
           String ejecutarsql="select nombre,"
                   + "apellidos,"
                   + "sexo,"
                   + "estado_civil,"
                   + "direccion,"
                   + "estado,"
                   + "municipio,"
                   + "telefono,"
                   + "escolaridad,"
                   + "carrera,"
                   + "email,"
                   + "ocupacion_actual,"
                   + "idiomas,"
                   + "nivel_idioma,"
                   + "licencia_manejo,"
                   + "cartilla_militar,"
                   + "experiencia,"
                   + "habilidades,"
                   + "referencias from alumno";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }
public String borrar_postulante(String n_nombre){
    try{
        if(conectar()){      
        CallableStatement cs=null;
    cs=conexion.prepareCall("BEGIN borrar_alumno(?); END;");
    cs.setString(1, n_nombre);
   cs.executeUpdate();
    
//cerramos la conexión
    conexion.close();
    }
        
    
    return "Registro eliminado";
    }
    catch(Exception e){
    return "Error al ejecutar el procedimiento: " + e;
    }
    }



public ResultSet vacantesjson(String json){
      ResultSet rs=null;
       try{
           String ejecutarsql="select nombre,ramo,salario,fun_a_realizar from vacante where nombre like'"+json+"'";
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }

public ResultSet conVacante(String id) {
        ResultSet rs = null;
        try {
            String sql = "select va.idvacante,"
                    + "va.nombre,"
                    + "va.ramo,"
                    + "va.salario,"
                    + "va.dias_de_trabajo,"
                    + "va.horario,"
                    + "va.habilidades,"
                    + "va.estatus,"
                    + "va.fecha_publicacion,"
                    + "va.requerimientos,"
                    + "va.descripcion_vacante,"
                    + "va.fecha_vigencia from vacante va, alumno pu where va.idarea=pu.idarea and pu.curp= '" + id + "'";
            if (conectar()) {
                Statement stt = conexion.createStatement();
                rs = stt.executeQuery(sql);
            }
            return rs;
        } catch (Exception e) {
            System.out.println("No se encontro nada" + e);
        }
        return rs;
    }

public ResultSet solicitud_de_vacante(String soli) {
        ResultSet rs = null;
        try {
            String sql = "select  a.num_solicitud,a.idvacante,a.curp,a.estatus"
                    + " from solicitud a inner join vacante b on a.idvacante=b.idvacante"
                    + "  and b.idvacante='"+soli+"'"; 
           if(conectar()){
                Statement stt = conexion.createStatement();
                rs = stt.executeQuery(sql);
            }
            return rs;
        } catch (Exception e) {
            System.out.println("No se encontro nada" + e);
        }
        return rs;
    }

public ResultSet solicitudes_recibidas(String re){
      ResultSet rs=null;
       try{
           String ejecutarsql="select  a.num_solicitud,a.idvacante,a.curp,a.estatus "
                   + "from solicitud a inner join vacante b on a.idvacante=b.idvacante "
                   + " inner join empresa c on c.rfc=b.rfc and b.rfc = '"+re+"'"; 
           if(conectar()){
               Statement stt=conexion.createStatement();
               rs=stt.executeQuery(ejecutarsql);
           } 
      return rs;
       }
  catch(Exception e){
      System.out.print("error al consultar"+e);
  }
  return rs;
  }


}